package leetcode_jz_offer.day13_array_string;

/**
 * 输入一个英文句子，翻转句子中单词的顺序，但单词内字符的顺序不变。为简单起见，标点符号和普通字母一样处理。
 * 例如输入字符串"I am a student. "，则输出"student. a am I"。
 **/
public class Num58_1_翻转单词顺序 {
    public static String reverseWords(String s) {
        s = s.trim();//去除字符串开头和末尾的空白字符
        // 正则匹配连续的空白字符作为分隔符分割
        String[] array=s.split("\\s+");//字符串按空格（中间是连续空格也当作一个空格分割）分割转为字符串数组
        int left=0;int right=array.length-1;
        while (left<right){
            String temp=array[left];
            array[left]=array[right];
            array[right]=temp;
            left++;
            right--;
        }
        StringBuilder sb=new StringBuilder();
        for (int i = 0; i < array.length; i++) {
            sb.append(array[i]);
            if(i!=array.length-1){
                sb.append(" ");
            }
        }
        String res= sb.toString();

        return res;
    }

    public static void main(String[] args) {
        String s=" a good   example ";
        reverseWords(s);
    }
}
